<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>hom_vector_to_proj_hom_mat2d [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_transformations.html">变换</a> / <a href="toc_transformations_2dtransformations.html">2D Transformations</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">hom_vector_to_proj_hom_mat2d</span><span data-if="c" style="display:none;">T_hom_vector_to_proj_hom_mat2d</span><span data-if="cpp" style="display:none;">HomVectorToProjHomMat2d</span><span data-if="dotnet" style="display:none;">HomVectorToProjHomMat2d</span><span data-if="python" style="display:none;">hom_vector_to_proj_hom_mat2d</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">hom_vector_to_proj_hom_mat2d</span><span data-if="c" style="display:none;">T_hom_vector_to_proj_hom_mat2d</span><span data-if="cpp" style="display:none;">HomVectorToProjHomMat2d</span><span data-if="dotnet" style="display:none;">HomVectorToProjHomMat2d</span><span data-if="python" style="display:none;">hom_vector_to_proj_hom_mat2d</span></code> — Compute a homogeneous transformation matrix using given point
correspondences.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>hom_vector_to_proj_hom_mat2d</b>( :  : <a href="#Px"><i>Px</i></a>, <a href="#Py"><i>Py</i></a>, <a href="#Pw"><i>Pw</i></a>, <a href="#Qx"><i>Qx</i></a>, <a href="#Qy"><i>Qy</i></a>, <a href="#Qw"><i>Qw</i></a>, <a href="#Method"><i>Method</i></a> : <a href="#HomMat2D"><i>HomMat2D</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_hom_vector_to_proj_hom_mat2d</b>(const Htuple <a href="#Px"><i>Px</i></a>, const Htuple <a href="#Py"><i>Py</i></a>, const Htuple <a href="#Pw"><i>Pw</i></a>, const Htuple <a href="#Qx"><i>Qx</i></a>, const Htuple <a href="#Qy"><i>Qy</i></a>, const Htuple <a href="#Qw"><i>Qw</i></a>, const Htuple <a href="#Method"><i>Method</i></a>, Htuple* <a href="#HomMat2D"><i>HomMat2D</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>HomVectorToProjHomMat2d</b>(const HTuple&amp; <a href="#Px"><i>Px</i></a>, const HTuple&amp; <a href="#Py"><i>Py</i></a>, const HTuple&amp; <a href="#Pw"><i>Pw</i></a>, const HTuple&amp; <a href="#Qx"><i>Qx</i></a>, const HTuple&amp; <a href="#Qy"><i>Qy</i></a>, const HTuple&amp; <a href="#Qw"><i>Qw</i></a>, const HTuple&amp; <a href="#Method"><i>Method</i></a>, HTuple* <a href="#HomMat2D"><i>HomMat2D</i></a>)</code></p>
<p>
<code>void <a href="HHomMat2D.html">HHomMat2D</a>::<b>HomVectorToProjHomMat2d</b>(const HTuple&amp; <a href="#Px"><i>Px</i></a>, const HTuple&amp; <a href="#Py"><i>Py</i></a>, const HTuple&amp; <a href="#Pw"><i>Pw</i></a>, const HTuple&amp; <a href="#Qx"><i>Qx</i></a>, const HTuple&amp; <a href="#Qy"><i>Qy</i></a>, const HTuple&amp; <a href="#Qw"><i>Qw</i></a>, const HString&amp; <a href="#Method"><i>Method</i></a>)</code></p>
<p>
<code>void <a href="HHomMat2D.html">HHomMat2D</a>::<b>HomVectorToProjHomMat2d</b>(const HTuple&amp; <a href="#Px"><i>Px</i></a>, const HTuple&amp; <a href="#Py"><i>Py</i></a>, const HTuple&amp; <a href="#Pw"><i>Pw</i></a>, const HTuple&amp; <a href="#Qx"><i>Qx</i></a>, const HTuple&amp; <a href="#Qy"><i>Qy</i></a>, const HTuple&amp; <a href="#Qw"><i>Qw</i></a>, const char* <a href="#Method"><i>Method</i></a>)</code></p>
<p>
<code>void <a href="HHomMat2D.html">HHomMat2D</a>::<b>HomVectorToProjHomMat2d</b>(const HTuple&amp; <a href="#Px"><i>Px</i></a>, const HTuple&amp; <a href="#Py"><i>Py</i></a>, const HTuple&amp; <a href="#Pw"><i>Pw</i></a>, const HTuple&amp; <a href="#Qx"><i>Qx</i></a>, const HTuple&amp; <a href="#Qy"><i>Qy</i></a>, const HTuple&amp; <a href="#Qw"><i>Qw</i></a>, const wchar_t* <a href="#Method"><i>Method</i></a>)  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>HomVectorToProjHomMat2d</b>(<a href="HTuple.html">HTuple</a> <a href="#Px"><i>px</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Py"><i>py</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Pw"><i>pw</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Qx"><i>qx</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Qy"><i>qy</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Qw"><i>qw</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Method"><i>method</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#HomMat2D"><i>homMat2D</i></a>)</code></p>
<p>
<code>void <a href="HHomMat2D.html">HHomMat2D</a>.<b>HomVectorToProjHomMat2d</b>(<a href="HTuple.html">HTuple</a> <a href="#Px"><i>px</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Py"><i>py</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Pw"><i>pw</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Qx"><i>qx</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Qy"><i>qy</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Qw"><i>qw</i></a>, string <a href="#Method"><i>method</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>hom_vector_to_proj_hom_mat2d</b>(<a href="#Px"><i>px</i></a>: Sequence[Union[float, int]], <a href="#Py"><i>py</i></a>: Sequence[Union[float, int]], <a href="#Pw"><i>pw</i></a>: Sequence[Union[float, int]], <a href="#Qx"><i>qx</i></a>: Sequence[float], <a href="#Qy"><i>qy</i></a>: Sequence[float], <a href="#Qw"><i>qw</i></a>: Sequence[float], <a href="#Method"><i>method</i></a>: str) -&gt; Sequence[float]</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p><code><span data-if="hdevelop" style="display:inline">hom_vector_to_proj_hom_mat2d</span><span data-if="c" style="display:none">hom_vector_to_proj_hom_mat2d</span><span data-if="cpp" style="display:none">HomVectorToProjHomMat2d</span><span data-if="com" style="display:none">HomVectorToProjHomMat2d</span><span data-if="dotnet" style="display:none">HomVectorToProjHomMat2d</span><span data-if="python" style="display:none">hom_vector_to_proj_hom_mat2d</span></code> determines the homogeneous
projective transformation matrix <a href="#HomMat2D"><i><code><span data-if="hdevelop" style="display:inline">HomMat2D</span><span data-if="c" style="display:none">HomMat2D</span><span data-if="cpp" style="display:none">HomMat2D</span><span data-if="com" style="display:none">HomMat2D</span><span data-if="dotnet" style="display:none">homMat2D</span><span data-if="python" style="display:none">hom_mat_2d</span></code></i></a> that optimally
fulfills the following equations given by at least 4 point
correspondences
<span title="1" class="displaymath"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="14.8255em" height="3.7116em" viewBox="0 0 237.207458 59.385666">
<!-- Original BoundingBox: -118.603729 -29.692825 118.603729 29.692841 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_50">
      <path style="fill-rule: evenodd;" d="M123.000000 -41.000000L123.000000 -44.000000C180.000000 -92.000000,243.000000 -151.000000,330.000000 -237.000000C454.000000 -358.000000,474.000000 -387.000000,474.000000 -446.000000C474.000000 -537.000000,388.000000 -618.000000,290.000000 -618.000000C229.000000 -618.000000,173.000000 -590.000000,136.000000 -542.000000C117.000000 -518.000000,104.000000 -488.000000,104.000000 -470.000000C104.000000 -461.000000,113.000000 -452.000000,123.000000 -452.000000C134.000000 -452.000000,140.000000 -458.000000,144.000000 -472.000000C160.000000 -532.000000,222.000000 -577.000000,290.000000 -577.000000C366.000000 -577.000000,433.000000 -516.000000,433.000000 -447.000000C433.000000 -402.000000,414.000000 -374.000000,320.000000 -282.000000C245.000000 -208.000000,165.000000 -133.000000,84.000000 -60.000000L84.000000 -0.000000L478.000000 -0.000000L478.000000 -77.000000C478.000000 -95.000000,471.000000 -104.000000,458.000000 -104.000000C444.000000 -104.000000,437.000000 -95.000000,437.000000 -77.000000L437.000000 -41.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_68">
      <path style="fill-rule: evenodd;" d="M104.000000 -41.000000L70.000000 -41.000000C52.000000 -41.000000,43.000000 -34.000000,43.000000 -21.000000C43.000000 -7.000000,52.000000 -0.000000,70.000000 -0.000000L290.000000 -0.000000C419.000000 -0.000000,520.000000 -112.000000,520.000000 -254.000000L520.000000 -310.000000C520.000000 -451.000000,419.000000 -563.000000,290.000000 -563.000000L70.000000 -563.000000C52.000000 -563.000000,43.000000 -556.000000,43.000000 -543.000000C43.000000 -529.000000,52.000000 -522.000000,70.000000 -522.000000L104.000000 -522.000000M145.000000 -41.000000L145.000000 -522.000000L288.000000 -522.000000C342.000000 -522.000000,379.000000 -507.000000,414.000000 -472.000000C454.000000 -431.000000,479.000000 -371.000000,479.000000 -318.000000L479.000000 -245.000000C479.000000 -139.000000,391.000000 -41.000000,295.000000 -41.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_72">
      <path style="fill-rule: evenodd;" d="M437.000000 -272.000000L437.000000 -41.000000L383.000000 -41.000000C365.000000 -41.000000,356.000000 -34.000000,356.000000 -21.000000C356.000000 -7.000000,365.000000 -0.000000,383.000000 -0.000000L524.000000 -0.000000C541.000000 -0.000000,551.000000 -7.000000,551.000000 -21.000000C551.000000 -34.000000,542.000000 -41.000000,524.000000 -41.000000L478.000000 -41.000000L478.000000 -522.000000L503.000000 -522.000000C521.000000 -522.000000,530.000000 -529.000000,530.000000 -543.000000C530.000000 -556.000000,521.000000 -563.000000,503.000000 -563.000000L383.000000 -563.000000C365.000000 -563.000000,356.000000 -556.000000,356.000000 -543.000000C356.000000 -529.000000,365.000000 -522.000000,383.000000 -522.000000L437.000000 -522.000000L437.000000 -313.000000L167.000000 -313.000000L167.000000 -522.000000L221.000000 -522.000000C239.000000 -522.000000,248.000000 -529.000000,248.000000 -543.000000C248.000000 -556.000000,239.000000 -563.000000,221.000000 -563.000000L101.000000 -563.000000C83.000000 -563.000000,74.000000 -556.000000,74.000000 -543.000000C74.000000 -529.000000,83.000000 -522.000000,101.000000 -522.000000L126.000000 -522.000000L126.000000 -41.000000L81.000000 -41.000000C62.000000 -41.000000,53.000000 -34.000000,53.000000 -21.000000C53.000000 -7.000000,63.000000 -0.000000,81.000000 -0.000000L221.000000 -0.000000C239.000000 -0.000000,248.000000 -7.000000,248.000000 -21.000000C248.000000 -34.000000,239.000000 -41.000000,221.000000 -41.000000L167.000000 -41.000000L167.000000 -272.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_77">
      <path style="fill-rule: evenodd;" d="M326.000000 -169.000000L483.000000 -522.000000L491.000000 -522.000000L491.000000 -41.000000L417.000000 -41.000000C399.000000 -41.000000,390.000000 -34.000000,390.000000 -21.000000C390.000000 -7.000000,399.000000 -0.000000,417.000000 -0.000000L566.000000 -0.000000C584.000000 -0.000000,593.000000 -7.000000,593.000000 -21.000000C593.000000 -34.000000,584.000000 -41.000000,566.000000 -41.000000L532.000000 -41.000000L532.000000 -522.000000L557.000000 -522.000000C575.000000 -522.000000,584.000000 -529.000000,584.000000 -543.000000C584.000000 -556.000000,575.000000 -563.000000,557.000000 -563.000000L457.000000 -563.000000L303.000000 -215.000000L146.000000 -563.000000L47.000000 -563.000000C29.000000 -563.000000,20.000000 -556.000000,20.000000 -543.000000C20.000000 -529.000000,29.000000 -522.000000,47.000000 -522.000000L72.000000 -522.000000L72.000000 -41.000000L38.000000 -41.000000C20.000000 -41.000000,11.000000 -34.000000,11.000000 -21.000000C11.000000 -7.000000,20.000000 -0.000000,38.000000 -0.000000L187.000000 -0.000000C205.000000 -0.000000,215.000000 -7.000000,215.000000 -21.000000C215.000000 -34.000000,206.000000 -41.000000,187.000000 -41.000000L113.000000 -41.000000L113.000000 -522.000000L121.000000 -522.000000L280.000000 -169.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_80">
      <path style="fill-rule: evenodd;" d="M165.000000 -231.000000L296.000000 -231.000000C410.000000 -231.000000,499.000000 -305.000000,499.000000 -398.000000C499.000000 -491.000000,416.000000 -563.000000,310.000000 -563.000000L70.000000 -563.000000C52.000000 -563.000000,43.000000 -556.000000,43.000000 -543.000000C43.000000 -529.000000,52.000000 -522.000000,70.000000 -522.000000L124.000000 -522.000000L124.000000 -41.000000L70.000000 -41.000000C52.000000 -41.000000,43.000000 -34.000000,43.000000 -21.000000C43.000000 -7.000000,52.000000 -0.000000,70.000000 -0.000000L303.000000 -0.000000C321.000000 -0.000000,331.000000 -7.000000,331.000000 -21.000000C331.000000 -34.000000,322.000000 -41.000000,303.000000 -41.000000L165.000000 -41.000000M165.000000 -272.000000L165.000000 -522.000000L314.000000 -522.000000C393.000000 -522.000000,458.000000 -466.000000,458.000000 -398.000000C458.000000 -329.000000,386.000000 -272.000000,299.000000 -272.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_81">
      <path style="fill-rule: evenodd;" d="M305.000000 16.000000C443.000000 12.000000,549.000000 -116.000000,549.000000 -280.000000C549.000000 -445.000000,439.000000 -576.000000,300.000000 -576.000000C161.000000 -576.000000,51.000000 -445.000000,51.000000 -280.000000C51.000000 -139.000000,135.000000 -15.000000,249.000000 10.000000L159.000000 75.000000C152.000000 80.000000,148.000000 86.000000,148.000000 93.000000C148.000000 105.000000,157.000000 114.000000,168.000000 114.000000C171.000000 114.000000,174.000000 113.000000,178.000000 112.000000C221.000000 100.000000,288.000000 89.000000,318.000000 89.000000C343.000000 89.000000,359.000000 92.000000,386.000000 102.000000C415.000000 112.000000,426.000000 115.000000,442.000000 115.000000C484.000000 115.000000,546.000000 84.000000,546.000000 64.000000C546.000000 52.000000,537.000000 43.000000,526.000000 43.000000C522.000000 43.000000,518.000000 44.000000,514.000000 47.000000C483.000000 67.000000,466.000000 74.000000,445.000000 74.000000C432.000000 74.000000,424.000000 72.000000,400.000000 63.000000C370.000000 52.000000,347.000000 48.000000,318.000000 48.000000C297.000000 48.000000,281.000000 50.000000,251.000000 56.000000M300.000000 -535.000000C416.000000 -535.000000,508.000000 -421.000000,508.000000 -277.000000C508.000000 -140.000000,413.000000 -25.000000,300.000000 -25.000000C186.000000 -25.000000,92.000000 -140.000000,92.000000 -280.000000C92.000000 -420.000000,185.000000 -535.000000,300.000000 -535.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_97">
      <path style="fill-rule: evenodd;" d="M419.000000 -0.000000L514.000000 -0.000000C532.000000 -0.000000,541.000000 -7.000000,541.000000 -21.000000C541.000000 -34.000000,532.000000 -41.000000,514.000000 -41.000000L460.000000 -41.000000L460.000000 -308.000000C460.000000 -379.000000,392.000000 -431.000000,299.000000 -431.000000C262.000000 -431.000000,197.000000 -418.000000,142.000000 -399.000000C131.000000 -395.000000,125.000000 -388.000000,125.000000 -378.000000C125.000000 -367.000000,134.000000 -358.000000,144.000000 -358.000000C146.000000 -358.000000,150.000000 -359.000000,154.000000 -360.000000C232.000000 -384.000000,260.000000 -390.000000,296.000000 -390.000000C369.000000 -390.000000,419.000000 -357.000000,419.000000 -308.000000L419.000000 -237.000000C360.000000 -253.000000,329.000000 -258.000000,283.000000 -258.000000C158.000000 -258.000000,72.000000 -199.000000,72.000000 -112.000000C72.000000 -36.000000,135.000000 16.000000,228.000000 16.000000C298.000000 16.000000,358.000000 -10.000000,419.000000 -67.000000M419.000000 -112.000000C352.000000 -49.000000,298.000000 -25.000000,227.000000 -25.000000C158.000000 -25.000000,113.000000 -59.000000,113.000000 -111.000000C113.000000 -174.000000,185.000000 -217.000000,291.000000 -217.000000C335.000000 -217.000000,383.000000 -211.000000,419.000000 -202.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_109">
      <path style="fill-rule: evenodd;" d="M112.000000 -417.000000L38.000000 -417.000000C20.000000 -417.000000,11.000000 -410.000000,11.000000 -397.000000C11.000000 -383.000000,20.000000 -376.000000,38.000000 -376.000000L72.000000 -376.000000L72.000000 -41.000000L38.000000 -41.000000C20.000000 -41.000000,11.000000 -34.000000,11.000000 -21.000000C11.000000 -7.000000,20.000000 -0.000000,37.000000 -0.000000L146.000000 -0.000000C163.000000 -0.000000,173.000000 -7.000000,173.000000 -21.000000C173.000000 -34.000000,164.000000 -41.000000,146.000000 -41.000000L112.000000 -41.000000L112.000000 -308.000000C150.000000 -365.000000,182.000000 -390.000000,217.000000 -390.000000C251.000000 -390.000000,282.000000 -355.000000,282.000000 -316.000000L282.000000 -0.000000L356.000000 -0.000000C374.000000 -0.000000,383.000000 -7.000000,383.000000 -21.000000C383.000000 -34.000000,374.000000 -41.000000,356.000000 -41.000000L322.000000 -41.000000L322.000000 -308.000000C360.000000 -366.000000,390.000000 -390.000000,426.000000 -390.000000C461.000000 -390.000000,492.000000 -357.000000,492.000000 -319.000000L492.000000 -0.000000L566.000000 -0.000000C584.000000 -0.000000,593.000000 -7.000000,593.000000 -21.000000C593.000000 -34.000000,584.000000 -41.000000,566.000000 -41.000000L532.000000 -41.000000L532.000000 -323.000000C532.000000 -382.000000,485.000000 -431.000000,427.000000 -431.000000C386.000000 -431.000000,353.000000 -410.000000,314.000000 -360.000000C292.000000 -408.000000,260.000000 -431.000000,217.000000 -431.000000C175.000000 -431.000000,146.000000 -413.000000,112.000000 -365.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_111">
      <path style="fill-rule: evenodd;" d="M300.000000 -431.000000C173.000000 -431.000000,72.000000 -331.000000,72.000000 -208.000000C72.000000 -83.000000,173.000000 16.000000,300.000000 16.000000C426.000000 16.000000,528.000000 -83.000000,528.000000 -205.000000C528.000000 -332.000000,428.000000 -431.000000,300.000000 -431.000000M300.000000 -390.000000C405.000000 -390.000000,487.000000 -310.000000,487.000000 -205.000000C487.000000 -106.000000,403.000000 -25.000000,300.000000 -25.000000C196.000000 -25.000000,113.000000 -106.000000,113.000000 -208.000000C113.000000 -309.000000,196.000000 -390.000000,300.000000 -390.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_116">
      <path style="fill-rule: evenodd;" d="M186.000000 -417.000000L186.000000 -536.000000C186.000000 -555.000000,180.000000 -563.000000,166.000000 -563.000000C152.000000 -563.000000,145.000000 -554.000000,145.000000 -536.000000L145.000000 -417.000000L71.000000 -417.000000C52.000000 -417.000000,43.000000 -410.000000,43.000000 -397.000000C43.000000 -383.000000,52.000000 -376.000000,71.000000 -376.000000L145.000000 -376.000000L145.000000 -107.000000C145.000000 -32.000000,206.000000 16.000000,300.000000 16.000000C385.000000 16.000000,499.000000 -22.000000,499.000000 -51.000000C499.000000 -61.000000,490.000000 -71.000000,480.000000 -71.000000C475.000000 -71.000000,472.000000 -70.000000,464.000000 -65.000000C425.000000 -42.000000,354.000000 -25.000000,298.000000 -25.000000C229.000000 -25.000000,186.000000 -58.000000,186.000000 -109.000000L186.000000 -376.000000L406.000000 -376.000000C424.000000 -376.000000,433.000000 -383.000000,433.000000 -397.000000C433.000000 -410.000000,424.000000 -417.000000,406.000000 -417.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_119">
      <path style="fill-rule: evenodd;" d="M441.000000 -0.000000L524.000000 -376.000000L543.000000 -376.000000C561.000000 -376.000000,570.000000 -383.000000,570.000000 -397.000000C570.000000 -410.000000,561.000000 -417.000000,543.000000 -417.000000L432.000000 -417.000000C414.000000 -417.000000,405.000000 -410.000000,405.000000 -397.000000C405.000000 -383.000000,414.000000 -376.000000,432.000000 -376.000000L482.000000 -376.000000L413.000000 -56.000000L324.000000 -311.000000L273.000000 -311.000000L187.000000 -56.000000L115.000000 -376.000000L168.000000 -376.000000C186.000000 -376.000000,195.000000 -383.000000,195.000000 -397.000000C195.000000 -410.000000,186.000000 -417.000000,168.000000 -417.000000L57.000000 -417.000000C39.000000 -417.000000,30.000000 -410.000000,30.000000 -397.000000C30.000000 -383.000000,39.000000 -376.000000,57.000000 -376.000000L76.000000 -376.000000L160.000000 -0.000000L211.000000 -0.000000L300.000000 -259.000000L391.000000 -0.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_120">
      <path style="fill-rule: evenodd;" d="M329.000000 -219.000000L492.000000 -376.000000L499.000000 -376.000000C517.000000 -376.000000,526.000000 -383.000000,526.000000 -397.000000C526.000000 -410.000000,517.000000 -417.000000,499.000000 -417.000000L389.000000 -417.000000C371.000000 -417.000000,362.000000 -410.000000,362.000000 -397.000000C362.000000 -383.000000,371.000000 -376.000000,389.000000 -376.000000L437.000000 -376.000000L300.000000 -246.000000L166.000000 -376.000000L212.000000 -376.000000C230.000000 -376.000000,239.000000 -383.000000,239.000000 -397.000000C239.000000 -411.000000,230.000000 -417.000000,212.000000 -417.000000L101.000000 -417.000000C83.000000 -417.000000,74.000000 -410.000000,74.000000 -397.000000C74.000000 -383.000000,83.000000 -376.000000,101.000000 -376.000000L108.000000 -376.000000L271.000000 -219.000000L87.000000 -41.000000L78.000000 -41.000000C60.000000 -41.000000,51.000000 -34.000000,51.000000 -21.000000C51.000000 -7.000000,60.000000 -0.000000,78.000000 -0.000000L211.000000 -0.000000C229.000000 -0.000000,238.000000 -7.000000,238.000000 -21.000000C238.000000 -34.000000,229.000000 -41.000000,211.000000 -41.000000L143.000000 -41.000000L300.000000 -190.000000L455.000000 -41.000000L390.000000 -41.000000C372.000000 -41.000000,363.000000 -34.000000,363.000000 -21.000000C363.000000 -7.000000,372.000000 -0.000000,390.000000 -0.000000L522.000000 -0.000000C540.000000 -0.000000,549.000000 -7.000000,549.000000 -21.000000C549.000000 -34.000000,540.000000 -41.000000,522.000000 -41.000000L513.000000 -41.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_121">
      <path style="fill-rule: evenodd;" d="M282.000000 -0.000000L211.000000 145.000000L84.000000 145.000000C66.000000 145.000000,57.000000 152.000000,57.000000 165.000000C57.000000 179.000000,66.000000 186.000000,84.000000 186.000000L317.000000 186.000000C335.000000 186.000000,344.000000 179.000000,344.000000 165.000000C344.000000 152.000000,335.000000 145.000000,317.000000 145.000000L252.000000 145.000000L508.000000 -376.000000L522.000000 -376.000000C540.000000 -376.000000,549.000000 -383.000000,549.000000 -397.000000C549.000000 -410.000000,540.000000 -417.000000,522.000000 -417.000000L412.000000 -417.000000C394.000000 -417.000000,385.000000 -410.000000,385.000000 -397.000000C385.000000 -383.000000,394.000000 -376.000000,412.000000 -376.000000L466.000000 -376.000000L305.000000 -45.000000L141.000000 -376.000000L193.000000 -376.000000C211.000000 -376.000000,220.000000 -383.000000,220.000000 -397.000000C220.000000 -410.000000,211.000000 -417.000000,193.000000 -417.000000L78.000000 -417.000000C60.000000 -417.000000,51.000000 -410.000000,51.000000 -397.000000C51.000000 -383.000000,60.000000 -376.000000,78.000000 -376.000000L94.000000 -376.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_61">
      <path style="fill-rule: evenodd;" d="M687.000000 -327.000000C702.000000 -327.000000,721.000000 -327.000000,721.000000 -347.000000C721.000000 -367.000000,702.000000 -367.000000,688.000000 -367.000000L89.000000 -367.000000C75.000000 -367.000000,56.000000 -367.000000,56.000000 -347.000000C56.000000 -327.000000,75.000000 -327.000000,90.000000 -327.000000M688.000000 -133.000000C702.000000 -133.000000,721.000000 -133.000000,721.000000 -153.000000C721.000000 -173.000000,702.000000 -173.000000,687.000000 -173.000000L90.000000 -173.000000C75.000000 -173.000000,56.000000 -173.000000,56.000000 -153.000000C56.000000 -133.000000,75.000000 -133.000000,89.000000 -133.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_1">
      <path style="fill-rule: evenodd;" d="M192.000000 -250.000000C192.000000 -279.000000,168.000000 -303.000000,139.000000 -303.000000C110.000000 -303.000000,86.000000 -279.000000,86.000000 -250.000000C86.000000 -221.000000,110.000000 -197.000000,139.000000 -197.000000C168.000000 -197.000000,192.000000 -221.000000,192.000000 -250.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmex10_48">
      <path style="fill-rule: evenodd;" d="M374.000000 1770.000000C396.000000 1770.000000,402.000000 1770.000000,402.000000 1756.000000C404.000000 1055.000000,485.000000 473.000000,835.000000 -16.000000C842.000000 -25.000000,842.000000 -27.000000,842.000000 -29.000000C842.000000 -39.000000,835.000000 -39.000000,819.000000 -39.000000C803.000000 -39.000000,801.000000 -39.000000,799.000000 -37.000000C795.000000 -34.000000,668.000000 112.000000,567.000000 313.000000C435.000000 577.000000,352.000000 880.000000,315.000000 1244.000000C312.000000 1275.000000,291.000000 1483.000000,291.000000 1720.000000L291.000000 1759.000000C292.000000 1770.000000,298.000000 1770.000000,319.000000 1770.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmex10_49">
      <path style="fill-rule: evenodd;" d="M583.000000 1720.000000C583.000000 1109.000000,474.000000 751.000000,443.000000 650.000000C375.000000 428.000000,264.000000 194.000000,97.000000 -12.000000C82.000000 -30.000000,78.000000 -35.000000,74.000000 -37.000000C72.000000 -38.000000,71.000000 -39.000000,55.000000 -39.000000C40.000000 -39.000000,32.000000 -39.000000,32.000000 -29.000000C32.000000 -27.000000,32.000000 -25.000000,45.000000 -7.000000C393.000000 479.000000,471.000000 1079.000000,472.000000 1756.000000C472.000000 1770.000000,478.000000 1770.000000,500.000000 1770.000000L555.000000 1770.000000C576.000000 1770.000000,582.000000 1770.000000,583.000000 1759.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmex10_64">
      <path style="fill-rule: evenodd;" d="M319.000000 -50.000000C298.000000 -50.000000,292.000000 -50.000000,291.000000 -39.000000L291.000000 -0.000000C291.000000 611.000000,400.000000 969.000000,431.000000 1070.000000C499.000000 1292.000000,610.000000 1526.000000,777.000000 1732.000000C792.000000 1750.000000,796.000000 1755.000000,800.000000 1757.000000C802.000000 1758.000000,803.000000 1759.000000,819.000000 1759.000000C835.000000 1759.000000,842.000000 1759.000000,842.000000 1749.000000C842.000000 1747.000000,842.000000 1745.000000,836.000000 1736.000000C503.000000 1274.000000,403.000000 718.000000,402.000000 -36.000000C402.000000 -50.000000,396.000000 -50.000000,374.000000 -50.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmex10_65">
      <path style="fill-rule: evenodd;" d="M583.000000 -39.000000C582.000000 -50.000000,576.000000 -50.000000,555.000000 -50.000000L500.000000 -50.000000C478.000000 -50.000000,472.000000 -50.000000,472.000000 -36.000000C472.000000 67.000000,471.000000 305.000000,445.000000 554.000000C391.000000 1071.000000,258.000000 1429.000000,39.000000 1736.000000C32.000000 1745.000000,32.000000 1747.000000,32.000000 1749.000000C32.000000 1759.000000,40.000000 1759.000000,55.000000 1759.000000C71.000000 1759.000000,73.000000 1759.000000,75.000000 1757.000000C79.000000 1754.000000,206.000000 1608.000000,307.000000 1407.000000C439.000000 1143.000000,522.000000 840.000000,559.000000 476.000000C562.000000 445.000000,583.000000 237.000000,583.000000 -0.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.396271 32.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_72"></use>
    <use xlink:href="#GLYPHpcrr8r_111" x="6.000092"></use>
    <use xlink:href="#GLYPHpcrr8r_109" x="12.000185"></use>
    <use xlink:href="#GLYPHpcrr8r_77" x="18.000277"></use>
    <use xlink:href="#GLYPHpcrr8r_97" x="24.000369"></use>
    <use xlink:href="#GLYPHpcrr8r_116" x="30.000462"></use>
    <use xlink:href="#GLYPHpcrr8r_50" x="36.000554"></use>
    <use xlink:href="#GLYPHpcrr8r_68" x="42.000646"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,80.451782 32.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_1"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,88.421875 0.944763)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmex10_48"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,88.421875 29.637527)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmex10_64"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,110.339874 13.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_80"></use>
    <use xlink:href="#GLYPHpcrr8r_120" x="6.000092"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,110.339874 32.825531)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_80"></use>
    <use xlink:href="#GLYPHpcrr8r_121" x="6.000092"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,110.339874 51.953918)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_80"></use>
    <use xlink:href="#GLYPHpcrr8r_119" x="6.000092"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,137.438217 0.944763)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmex10_49"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,137.438217 29.637527)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmex10_65"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,155.813828 32.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,172.639648 0.944763)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmex10_48"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,172.639648 29.637527)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmex10_64"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,194.557480 13.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_81"></use>
    <use xlink:href="#GLYPHpcrr8r_120" x="6.000092"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,194.557480 32.825531)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_81"></use>
    <use xlink:href="#GLYPHpcrr8r_121" x="6.000092"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,194.557480 51.953918)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_81"></use>
    <use xlink:href="#GLYPHpcrr8r_119" x="6.000092"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,221.656006 0.944763)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmex10_49"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,221.656006 29.637527)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmex10_65"></use>
  </g>
</svg></span>
If fewer than 4 pairs of points
(<a href="#Px"><i><code><span data-if="hdevelop" style="display:inline">Px</span><span data-if="c" style="display:none">Px</span><span data-if="cpp" style="display:none">Px</span><span data-if="com" style="display:none">Px</span><span data-if="dotnet" style="display:none">px</span><span data-if="python" style="display:none">px</span></code></i></a>,<a href="#Py"><i><code><span data-if="hdevelop" style="display:inline">Py</span><span data-if="c" style="display:none">Py</span><span data-if="cpp" style="display:none">Py</span><span data-if="com" style="display:none">Py</span><span data-if="dotnet" style="display:none">py</span><span data-if="python" style="display:none">py</span></code></i></a>,<a href="#Pw"><i><code><span data-if="hdevelop" style="display:inline">Pw</span><span data-if="c" style="display:none">Pw</span><span data-if="cpp" style="display:none">Pw</span><span data-if="com" style="display:none">Pw</span><span data-if="dotnet" style="display:none">pw</span><span data-if="python" style="display:none">pw</span></code></i></a>),
(<a href="#Qx"><i><code><span data-if="hdevelop" style="display:inline">Qx</span><span data-if="c" style="display:none">Qx</span><span data-if="cpp" style="display:none">Qx</span><span data-if="com" style="display:none">Qx</span><span data-if="dotnet" style="display:none">qx</span><span data-if="python" style="display:none">qx</span></code></i></a>,<a href="#Qy"><i><code><span data-if="hdevelop" style="display:inline">Qy</span><span data-if="c" style="display:none">Qy</span><span data-if="cpp" style="display:none">Qy</span><span data-if="com" style="display:none">Qy</span><span data-if="dotnet" style="display:none">qy</span><span data-if="python" style="display:none">qy</span></code></i></a>,<a href="#Qw"><i><code><span data-if="hdevelop" style="display:inline">Qw</span><span data-if="c" style="display:none">Qw</span><span data-if="cpp" style="display:none">Qw</span><span data-if="com" style="display:none">Qw</span><span data-if="dotnet" style="display:none">qw</span><span data-if="python" style="display:none">qw</span></code></i></a>) are given, there exists no
unique solution, if exactly 4 pairs are supplied the matrix
<a href="#HomMat2D"><i><code><span data-if="hdevelop" style="display:inline">HomMat2D</span><span data-if="c" style="display:none">HomMat2D</span><span data-if="cpp" style="display:none">HomMat2D</span><span data-if="com" style="display:none">HomMat2D</span><span data-if="dotnet" style="display:none">homMat2D</span><span data-if="python" style="display:none">hom_mat_2d</span></code></i></a> transforms them in exactly the desired way, and if
there are more than 4 point pairs given,
<code><span data-if="hdevelop" style="display:inline">hom_vector_to_proj_hom_mat2d</span><span data-if="c" style="display:none">hom_vector_to_proj_hom_mat2d</span><span data-if="cpp" style="display:none">HomVectorToProjHomMat2d</span><span data-if="com" style="display:none">HomVectorToProjHomMat2d</span><span data-if="dotnet" style="display:none">HomVectorToProjHomMat2d</span><span data-if="python" style="display:none">hom_vector_to_proj_hom_mat2d</span></code> seeks to minimize the
transformation error.  To achieve such a minimization, two different
algorithms are available.  The algorithm to use can be chosen using
the parameter <a href="#Method"><i><code><span data-if="hdevelop" style="display:inline">Method</span><span data-if="c" style="display:none">Method</span><span data-if="cpp" style="display:none">Method</span><span data-if="com" style="display:none">Method</span><span data-if="dotnet" style="display:none">method</span><span data-if="python" style="display:none">method</span></code></i></a>.  For conventional geometric problems
<a href="#Method"><i><code><span data-if="hdevelop" style="display:inline">Method</span><span data-if="c" style="display:none">Method</span><span data-if="cpp" style="display:none">Method</span><span data-if="com" style="display:none">Method</span><span data-if="dotnet" style="display:none">method</span><span data-if="python" style="display:none">method</span></code></i></a>=<i><span data-if="hdevelop" style="display:inline">'normalized_dlt'</span><span data-if="c" style="display:none">"normalized_dlt"</span><span data-if="cpp" style="display:none">"normalized_dlt"</span><span data-if="com" style="display:none">"normalized_dlt"</span><span data-if="dotnet" style="display:none">"normalized_dlt"</span><span data-if="python" style="display:none">"normalized_dlt"</span></i> usually yields better
results.  However, if one of the coordinates <a href="#Qw"><i><code><span data-if="hdevelop" style="display:inline">Qw</span><span data-if="c" style="display:none">Qw</span><span data-if="cpp" style="display:none">Qw</span><span data-if="com" style="display:none">Qw</span><span data-if="dotnet" style="display:none">qw</span><span data-if="python" style="display:none">qw</span></code></i></a> or
<a href="#Pw"><i><code><span data-if="hdevelop" style="display:inline">Pw</span><span data-if="c" style="display:none">Pw</span><span data-if="cpp" style="display:none">Pw</span><span data-if="com" style="display:none">Pw</span><span data-if="dotnet" style="display:none">pw</span><span data-if="python" style="display:none">pw</span></code></i></a> equals <i>0</i>, <a href="#Method"><i><code><span data-if="hdevelop" style="display:inline">Method</span><span data-if="c" style="display:none">Method</span><span data-if="cpp" style="display:none">Method</span><span data-if="com" style="display:none">Method</span><span data-if="dotnet" style="display:none">method</span><span data-if="python" style="display:none">method</span></code></i></a>=<i><span data-if="hdevelop" style="display:inline">'dlt'</span><span data-if="c" style="display:none">"dlt"</span><span data-if="cpp" style="display:none">"dlt"</span><span data-if="com" style="display:none">"dlt"</span><span data-if="dotnet" style="display:none">"dlt"</span><span data-if="python" style="display:none">"dlt"</span></i> must
be chosen.
</p>
<p>In contrast to <a href="vector_to_proj_hom_mat2d.html"><code><span data-if="hdevelop" style="display:inline">vector_to_proj_hom_mat2d</span><span data-if="c" style="display:none">vector_to_proj_hom_mat2d</span><span data-if="cpp" style="display:none">VectorToProjHomMat2d</span><span data-if="com" style="display:none">VectorToProjHomMat2d</span><span data-if="dotnet" style="display:none">VectorToProjHomMat2d</span><span data-if="python" style="display:none">vector_to_proj_hom_mat2d</span></code></a>,
<code><span data-if="hdevelop" style="display:inline">hom_vector_to_proj_hom_mat2d</span><span data-if="c" style="display:none">hom_vector_to_proj_hom_mat2d</span><span data-if="cpp" style="display:none">HomVectorToProjHomMat2d</span><span data-if="com" style="display:none">HomVectorToProjHomMat2d</span><span data-if="dotnet" style="display:none">HomVectorToProjHomMat2d</span><span data-if="python" style="display:none">hom_vector_to_proj_hom_mat2d</span></code> uses homogeneous coordinates
for the points, and hence points at infinity (<a href="#Pw"><i><code><span data-if="hdevelop" style="display:inline">Pw</span><span data-if="c" style="display:none">Pw</span><span data-if="cpp" style="display:none">Pw</span><span data-if="com" style="display:none">Pw</span><span data-if="dotnet" style="display:none">pw</span><span data-if="python" style="display:none">pw</span></code></i></a> =
<i>0</i> or <a href="#Qw"><i><code><span data-if="hdevelop" style="display:inline">Qw</span><span data-if="c" style="display:none">Qw</span><span data-if="cpp" style="display:none">Qw</span><span data-if="com" style="display:none">Qw</span><span data-if="dotnet" style="display:none">qw</span><span data-if="python" style="display:none">qw</span></code></i></a> = <i>0</i>) can be used to determine
the transformation.  If finite points are used, typically
<a href="#Pw"><i><code><span data-if="hdevelop" style="display:inline">Pw</span><span data-if="c" style="display:none">Pw</span><span data-if="cpp" style="display:none">Pw</span><span data-if="com" style="display:none">Pw</span><span data-if="dotnet" style="display:none">pw</span><span data-if="python" style="display:none">pw</span></code></i></a> and <a href="#Qw"><i><code><span data-if="hdevelop" style="display:inline">Qw</span><span data-if="c" style="display:none">Qw</span><span data-if="cpp" style="display:none">Qw</span><span data-if="com" style="display:none">Qw</span><span data-if="dotnet" style="display:none">qw</span><span data-if="python" style="display:none">qw</span></code></i></a> are set to <i>1</i>.  In this case,
<a href="vector_to_proj_hom_mat2d.html"><code><span data-if="hdevelop" style="display:inline">vector_to_proj_hom_mat2d</span><span data-if="c" style="display:none">vector_to_proj_hom_mat2d</span><span data-if="cpp" style="display:none">VectorToProjHomMat2d</span><span data-if="com" style="display:none">VectorToProjHomMat2d</span><span data-if="dotnet" style="display:none">VectorToProjHomMat2d</span><span data-if="python" style="display:none">vector_to_proj_hom_mat2d</span></code></a> can also be used.
<a href="vector_to_proj_hom_mat2d.html"><code><span data-if="hdevelop" style="display:inline">vector_to_proj_hom_mat2d</span><span data-if="c" style="display:none">vector_to_proj_hom_mat2d</span><span data-if="cpp" style="display:none">VectorToProjHomMat2d</span><span data-if="com" style="display:none">VectorToProjHomMat2d</span><span data-if="dotnet" style="display:none">VectorToProjHomMat2d</span><span data-if="python" style="display:none">vector_to_proj_hom_mat2d</span></code></a> has the advantage that one
additional optimization method can be used and that the covariances
of the points can be taken into account.  If the correspondence
between the points has not been determined,
<a href="proj_match_points_ransac.html"><code><span data-if="hdevelop" style="display:inline">proj_match_points_ransac</span><span data-if="c" style="display:none">proj_match_points_ransac</span><span data-if="cpp" style="display:none">ProjMatchPointsRansac</span><span data-if="com" style="display:none">ProjMatchPointsRansac</span><span data-if="dotnet" style="display:none">ProjMatchPointsRansac</span><span data-if="python" style="display:none">proj_match_points_ransac</span></code></a> should be used to determine the
correspondence as well as the transformation.
</p>
<p>If the points to transform are specified in standard image
coordinates, their <em>row</em> coordinates must be passed in
<a href="#Px"><i><code><span data-if="hdevelop" style="display:inline">Px</span><span data-if="c" style="display:none">Px</span><span data-if="cpp" style="display:none">Px</span><span data-if="com" style="display:none">Px</span><span data-if="dotnet" style="display:none">px</span><span data-if="python" style="display:none">px</span></code></i></a> and their <em>column</em> coordinates in <a href="#Py"><i><code><span data-if="hdevelop" style="display:inline">Py</span><span data-if="c" style="display:none">Py</span><span data-if="cpp" style="display:none">Py</span><span data-if="com" style="display:none">Py</span><span data-if="dotnet" style="display:none">py</span><span data-if="python" style="display:none">py</span></code></i></a>. This
is necessary to obtain a right-handed coordinate system for the
image.  In particular, this assures that rotations are performed in
the correct direction.  Note that the (x,y) order of the
matrices quite naturally corresponds to the usual (row,column) order
for coordinates in the image.</p>
<h2 id="sec_attention">注意</h2>
<p>It should be noted that homogeneous transformation matrices refer to
a general right-handed mathematical coordinate system.  If a
homogeneous transformation matrix is used to transform images,
regions, XLD contours, or any other data that has been extracted
from images, the row coordinates of the transformation must be
passed in the x coordinates, while the column coordinates must be
passed in the y coordinates.  Consequently, the order of passing row
and column coordinates follows the usual order
(<code><span data-if="hdevelop" style="display:inline">Row</span><span data-if="c" style="display:none">Row</span><span data-if="cpp" style="display:none">Row</span><span data-if="com" style="display:none">Row</span><span data-if="dotnet" style="display:none">row</span><span data-if="python" style="display:none">row</span></code>,<code><span data-if="hdevelop" style="display:inline">Column</span><span data-if="c" style="display:none">Column</span><span data-if="cpp" style="display:none">Column</span><span data-if="com" style="display:none">Column</span><span data-if="dotnet" style="display:none">column</span><span data-if="python" style="display:none">column</span></code>).  This convention is essential to
obtain a right-handed coordinate system for the transformation of
iconic data, and consequently to ensure in particular that rotations
are performed in the correct mathematical direction.
</p>
<p>Furthermore, it should be noted that if a homogeneous transformation
matrix is used to transform images, regions, XLD contours, or any
other data that has been extracted from images, it is assumed that
the origin of the coordinate system of the homogeneous
transformation matrix lies in the upper left corner of a pixel.  The
image processing operators that return point coordinates, however,
assume a coordinate system in which the origin lies in the center of
a pixel.  Therefore, to obtain a consistent homogeneous
transformation matrix, 0.5 must be added to the point coordinates
before computing the transformation.</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="Px" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Px</span><span data-if="c" style="display:none">Px</span><span data-if="cpp" style="display:none">Px</span><span data-if="com" style="display:none">Px</span><span data-if="dotnet" style="display:none">px</span><span data-if="python" style="display:none">px</span></code></b> (input_control)  </span><span>number-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[Union[float, int]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real / </span><span data-if="hdevelop" style="display:inline">integer)</span><span data-if="dotnet" style="display:none"> (<i>double</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>double</i> / </span><span data-if="cpp" style="display:none">Hlong)</span><span data-if="c" style="display:none"> (<i>double</i> / </span><span data-if="c" style="display:none">Hlong)</span></span>
</div>
<p class="pardesc">Input points 1 (x coordinate).</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Py" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Py</span><span data-if="c" style="display:none">Py</span><span data-if="cpp" style="display:none">Py</span><span data-if="com" style="display:none">Py</span><span data-if="dotnet" style="display:none">py</span><span data-if="python" style="display:none">py</span></code></b> (input_control)  </span><span>number-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[Union[float, int]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real / </span><span data-if="hdevelop" style="display:inline">integer)</span><span data-if="dotnet" style="display:none"> (<i>double</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>double</i> / </span><span data-if="cpp" style="display:none">Hlong)</span><span data-if="c" style="display:none"> (<i>double</i> / </span><span data-if="c" style="display:none">Hlong)</span></span>
</div>
<p class="pardesc">Input points 1 (y coordinate).</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Pw" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Pw</span><span data-if="c" style="display:none">Pw</span><span data-if="cpp" style="display:none">Pw</span><span data-if="com" style="display:none">Pw</span><span data-if="dotnet" style="display:none">pw</span><span data-if="python" style="display:none">pw</span></code></b> (input_control)  </span><span>number-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[Union[float, int]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real / </span><span data-if="hdevelop" style="display:inline">integer)</span><span data-if="dotnet" style="display:none"> (<i>double</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>double</i> / </span><span data-if="cpp" style="display:none">Hlong)</span><span data-if="c" style="display:none"> (<i>double</i> / </span><span data-if="c" style="display:none">Hlong)</span></span>
</div>
<p class="pardesc">Input points 1 (w coordinate).</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Qx" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Qx</span><span data-if="c" style="display:none">Qx</span><span data-if="cpp" style="display:none">Qx</span><span data-if="com" style="display:none">Qx</span><span data-if="dotnet" style="display:none">qx</span><span data-if="python" style="display:none">qx</span></code></b> (input_control)  </span><span>number-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Input points 2 (x coordinate).</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Qy" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Qy</span><span data-if="c" style="display:none">Qy</span><span data-if="cpp" style="display:none">Qy</span><span data-if="com" style="display:none">Qy</span><span data-if="dotnet" style="display:none">qy</span><span data-if="python" style="display:none">qy</span></code></b> (input_control)  </span><span>number-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Input points 2 (y coordinate).</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Qw" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Qw</span><span data-if="c" style="display:none">Qw</span><span data-if="cpp" style="display:none">Qw</span><span data-if="com" style="display:none">Qw</span><span data-if="dotnet" style="display:none">qw</span><span data-if="python" style="display:none">qw</span></code></b> (input_control)  </span><span>number-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Input points 2 (w coordinate).</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Method" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Method</span><span data-if="c" style="display:none">Method</span><span data-if="cpp" style="display:none">Method</span><span data-if="com" style="display:none">Method</span><span data-if="dotnet" style="display:none">method</span><span data-if="python" style="display:none">method</span></code></b> (input_control)  </span><span>string <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">str</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Estimation algorithm.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'normalized_dlt'</span>
    <span data-if="c" style="display:none">"normalized_dlt"</span>
    <span data-if="cpp" style="display:none">"normalized_dlt"</span>
    <span data-if="com" style="display:none">"normalized_dlt"</span>
    <span data-if="dotnet" style="display:none">"normalized_dlt"</span>
    <span data-if="python" style="display:none">"normalized_dlt"</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'dlt'</span><span data-if="c" style="display:none">"dlt"</span><span data-if="cpp" style="display:none">"dlt"</span><span data-if="com" style="display:none">"dlt"</span><span data-if="dotnet" style="display:none">"dlt"</span><span data-if="python" style="display:none">"dlt"</span>, <span data-if="hdevelop" style="display:inline">'normalized_dlt'</span><span data-if="c" style="display:none">"normalized_dlt"</span><span data-if="cpp" style="display:none">"normalized_dlt"</span><span data-if="com" style="display:none">"normalized_dlt"</span><span data-if="dotnet" style="display:none">"normalized_dlt"</span><span data-if="python" style="display:none">"normalized_dlt"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="HomMat2D" class="parname"><b><code><span data-if="hdevelop" style="display:inline">HomMat2D</span><span data-if="c" style="display:none">HomMat2D</span><span data-if="cpp" style="display:none">HomMat2D</span><span data-if="com" style="display:none">HomMat2D</span><span data-if="dotnet" style="display:none">homMat2D</span><span data-if="python" style="display:none">hom_mat_2d</span></code></b> (output_control)  </span><span>hom_mat2d <code>→</code> <span data-if="dotnet" style="display:none"><a href="HHomMat2D.html">HHomMat2D</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Homogeneous projective transformation matrix.</p>
</div>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="proj_match_points_ransac.html"><span data-if="hdevelop" style="display:inline">proj_match_points_ransac</span><span data-if="c" style="display:none">proj_match_points_ransac</span><span data-if="cpp" style="display:none">ProjMatchPointsRansac</span><span data-if="com" style="display:none">ProjMatchPointsRansac</span><span data-if="dotnet" style="display:none">ProjMatchPointsRansac</span><span data-if="python" style="display:none">proj_match_points_ransac</span></a></code>, 
<code><a href="proj_match_points_ransac_guided.html"><span data-if="hdevelop" style="display:inline">proj_match_points_ransac_guided</span><span data-if="c" style="display:none">proj_match_points_ransac_guided</span><span data-if="cpp" style="display:none">ProjMatchPointsRansacGuided</span><span data-if="com" style="display:none">ProjMatchPointsRansacGuided</span><span data-if="dotnet" style="display:none">ProjMatchPointsRansacGuided</span><span data-if="python" style="display:none">proj_match_points_ransac_guided</span></a></code>, 
<code><a href="points_foerstner.html"><span data-if="hdevelop" style="display:inline">points_foerstner</span><span data-if="c" style="display:none">points_foerstner</span><span data-if="cpp" style="display:none">PointsFoerstner</span><span data-if="com" style="display:none">PointsFoerstner</span><span data-if="dotnet" style="display:none">PointsFoerstner</span><span data-if="python" style="display:none">points_foerstner</span></a></code>, 
<code><a href="points_harris.html"><span data-if="hdevelop" style="display:inline">points_harris</span><span data-if="c" style="display:none">points_harris</span><span data-if="cpp" style="display:none">PointsHarris</span><span data-if="com" style="display:none">PointsHarris</span><span data-if="dotnet" style="display:none">PointsHarris</span><span data-if="python" style="display:none">points_harris</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="projective_trans_image.html"><span data-if="hdevelop" style="display:inline">projective_trans_image</span><span data-if="c" style="display:none">projective_trans_image</span><span data-if="cpp" style="display:none">ProjectiveTransImage</span><span data-if="com" style="display:none">ProjectiveTransImage</span><span data-if="dotnet" style="display:none">ProjectiveTransImage</span><span data-if="python" style="display:none">projective_trans_image</span></a></code>, 
<code><a href="projective_trans_image_size.html"><span data-if="hdevelop" style="display:inline">projective_trans_image_size</span><span data-if="c" style="display:none">projective_trans_image_size</span><span data-if="cpp" style="display:none">ProjectiveTransImageSize</span><span data-if="com" style="display:none">ProjectiveTransImageSize</span><span data-if="dotnet" style="display:none">ProjectiveTransImageSize</span><span data-if="python" style="display:none">projective_trans_image_size</span></a></code>, 
<code><a href="projective_trans_region.html"><span data-if="hdevelop" style="display:inline">projective_trans_region</span><span data-if="c" style="display:none">projective_trans_region</span><span data-if="cpp" style="display:none">ProjectiveTransRegion</span><span data-if="com" style="display:none">ProjectiveTransRegion</span><span data-if="dotnet" style="display:none">ProjectiveTransRegion</span><span data-if="python" style="display:none">projective_trans_region</span></a></code>, 
<code><a href="projective_trans_contour_xld.html"><span data-if="hdevelop" style="display:inline">projective_trans_contour_xld</span><span data-if="c" style="display:none">projective_trans_contour_xld</span><span data-if="cpp" style="display:none">ProjectiveTransContourXld</span><span data-if="com" style="display:none">ProjectiveTransContourXld</span><span data-if="dotnet" style="display:none">ProjectiveTransContourXld</span><span data-if="python" style="display:none">projective_trans_contour_xld</span></a></code>, 
<code><a href="projective_trans_point_2d.html"><span data-if="hdevelop" style="display:inline">projective_trans_point_2d</span><span data-if="c" style="display:none">projective_trans_point_2d</span><span data-if="cpp" style="display:none">ProjectiveTransPoint2d</span><span data-if="com" style="display:none">ProjectiveTransPoint2d</span><span data-if="dotnet" style="display:none">ProjectiveTransPoint2d</span><span data-if="python" style="display:none">projective_trans_point_2d</span></a></code>, 
<code><a href="projective_trans_pixel.html"><span data-if="hdevelop" style="display:inline">projective_trans_pixel</span><span data-if="c" style="display:none">projective_trans_pixel</span><span data-if="cpp" style="display:none">ProjectiveTransPixel</span><span data-if="com" style="display:none">ProjectiveTransPixel</span><span data-if="dotnet" style="display:none">ProjectiveTransPixel</span><span data-if="python" style="display:none">projective_trans_pixel</span></a></code>
</p>
<h2 id="sec_alternatives">可替代算子</h2>
<p>
<code><a href="vector_to_proj_hom_mat2d.html"><span data-if="hdevelop" style="display:inline">vector_to_proj_hom_mat2d</span><span data-if="c" style="display:none">vector_to_proj_hom_mat2d</span><span data-if="cpp" style="display:none">VectorToProjHomMat2d</span><span data-if="com" style="display:none">VectorToProjHomMat2d</span><span data-if="dotnet" style="display:none">VectorToProjHomMat2d</span><span data-if="python" style="display:none">vector_to_proj_hom_mat2d</span></a></code>, 
<code><a href="proj_match_points_ransac.html"><span data-if="hdevelop" style="display:inline">proj_match_points_ransac</span><span data-if="c" style="display:none">proj_match_points_ransac</span><span data-if="cpp" style="display:none">ProjMatchPointsRansac</span><span data-if="com" style="display:none">ProjMatchPointsRansac</span><span data-if="dotnet" style="display:none">ProjMatchPointsRansac</span><span data-if="python" style="display:none">proj_match_points_ransac</span></a></code>, 
<code><a href="proj_match_points_ransac_guided.html"><span data-if="hdevelop" style="display:inline">proj_match_points_ransac_guided</span><span data-if="c" style="display:none">proj_match_points_ransac_guided</span><span data-if="cpp" style="display:none">ProjMatchPointsRansacGuided</span><span data-if="com" style="display:none">ProjMatchPointsRansacGuided</span><span data-if="dotnet" style="display:none">ProjMatchPointsRansacGuided</span><span data-if="python" style="display:none">proj_match_points_ransac_guided</span></a></code>
</p>
<h2 id="sec_references">References</h2>
<p>

Richard Hartley, Andrew Zisserman: “Multiple View Geometry in
Computer Vision”; Cambridge University Press, Cambridge; 2000.
<br>
Olivier Faugeras, Quang-Tuan Luong: “The Geometry of Multiple
Images: The Laws That Govern the Formation of Multiple Images of a
Scene and Some of Their Applications”; MIT Press, Cambridge, MA;
2001.
</p>
<h2 id="sec_module">模块</h2>
<p>
Calibration</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
